<?php
/**
 * @author jonathan poelen <jonathan.poelen@gmail.com>
 * @version 1.0: jo_link_noir
 * @date 18-10-2009
 */
interface SW_I_Element_Subject
{
	/**
	 * Ajoute $observer dans la liste des observateurs
	 * @param SW_I_Element_Observer $observer
	 */
	public function attach(SW_I_Element_Observer $observer);

	/**
	 * Enlève $observer de la liste des observateurs
	 * @param SW_I_Element_Observer $observer
	 */
	public function detach(SW_I_Element_Observer $observer);

	/**
	 * Lance la méthode update des observateurs attaché
	 * @code
		foreach($this->_observer as $o) $o->update($this);
	 * @endcode
	 */
	public function notify();
}